const Sequelize = require("sequelize");
const config = require("./config");

const sequelize = new Sequelize(config.database,config.username,config.password,{
    host:config.host,//数据库地址
    dialect:'mysql', //指定连接的数据库类型
    pool: {
        max: 5, //连接池最大连接数量
        min: 0, //最小连接数量
        idle: 10000, //如果一个线程 10秒内没有被使用过的话，就释放
    },
    logging: true, // 执行过程会log一些SQL的logging，设为false不显示
    // 数据表全局配置
    define:{
        //是否冻结表名,最好设置为true，要不sequelize会自动给表名加上复数s造成查询数据失败。
        //mongoose也有这样的问题...
        freezeTableName:true,
        // 是否为表添加 createdAt 和 updatedAt 字段
        // createdAt 记录表的创建时间
        // updatedAt 记录字段更新时间
        timestamps:true,
        // 是否为表添加 deletedAt 字段
        // 在日常开发中删除数据记录是一大禁忌，因此我们删除数据并不会真正删除，而是为他添加
        // deletedAt字段
        paranoid:false,
        //是否开启op
        operatorsAliases: false
    },
    // 时区
    timezone: '+08:00'
})

//对连接进行测试，查看控制台
// sequelize
//     .authenticate()
//     .then(() => {
//         console.log('******成功建立.********');
//         console.log('******测试结束，即将退出！！！********');
//         process.exit(); //结束进程
//     })
//     .catch(err => {
//         console.error('***************无法连接到数据库:***********', err);
//     });


sequelize.sync({
    force:false
})


module.exports = { db:sequelize }